Steep

serif calm over a watercolour haze

SaaS Light light editorial airy elegant minimal gradient Built with Next.js, Tailwind CSS

A white, almost weightless analytics site where a single high-contrast serif does all the emotional work. Oversized Signifier headlines sit centred in deep whitespace above a soft, airbrushed peach-to-lilac gradient wash; around them, product UI fragments (metric cards, line charts, an AI prompt box) float in at the page edges like cropped screenshots. Everything else is grayscale and quiet — grey nav links, a single black pill CTA, light grey panels — so the serif and the gradient carry all the personality.

Technically it's a two-family system: Signifier at 64–100px with tight tracking (-0.96px to -2.5px) and 1.0–1.3 line heights for display, Söhne at 16–22px/1.35–1.5 for everything else, in weights 400–500 only. Surfaces step through #ffffff → #fafafb → #f7f7f8 → #f2f2f3 with no visible borders; depth comes from a 1px oklab hairline ring plus a wide, low-opacity drop shadow (0 8px 40px rgba(0,0,0,.1)). Radii are generous and consistent — 16/20/24px on cards, fully rounded pills on buttons and badges — and tinted accent cards (#fbe1d1 peach, #d3e3fc periwinkle) appear sparingly to break the grey. Sections are separated by 96–180px of vertical air inside a 1360px container.

https://steep.app

Colors

Click a swatch to copy

Typography

  • display
    Signifier
    400 · falls back to Spectral, Source Serif 4, Georgia, serif
    High-contrast didone-ish serif used at a single weight (400) for every headline, hero word and card title. Italic is used for emphasis words ('Built for finance'). Never used below 36px, never bolded.
  • body
    Sohne
    400 · 430 · 450 · 480 · 500 · falls back to Inter, Helvetica Neue, Arial, sans-serif
    Grotesk workhorse for nav, buttons, body, labels and UI chrome. The in-between weights (430/450/480) are used to nudge optical weight — treat 400 as body, 430 for buttons/subheads, 500 as the heaviest label weight.
  • mono
    ui-monospace
    400 · falls back to SF Mono, Menlo, monospace
    System mono, used only inside code/terminal screenshots and API snippets in the changelog.
Display
100px / 1.05
400 · -0.025em
Steep
H1
64px / 1.0
400 · -0.015em
Steep
H2
40px / 1.1
400
Steep
H3
36px / 1.07
400 · -0.018em
Serif calm over a watercolour haze
Lead
22px / 1.5
400
The quick brown fox jumps over the lazy dog
Subhead
20px / 1.35
500
The quick brown fox jumps over the lazy dog
Body
18px / 1.39
400
The quick brown fox jumps over the lazy dog
UI / Nav
16px / 24px
400
The quick brown fox jumps over the lazy dog
Caption
14px / 1.4
430
The quick brown fox jumps over the lazy dog

Spacing & Shape

Spacing
Base unit
4px
Density
spacious
Container
1360px
Section gap
128px (96px on narrow, up to 180px between major chapters)
Card padding
32px for tinted/feature cards, 48px for large grey panels, 16px for floating UI cards
4
8
12
16
20
24
32
48
64
80
128
160
Radius
  • Buttons, pills, badges, avatars, announcement bar 9999px
  • Floating UI / product cards 12px
  • Large feature panels 16px
  • Chat & prompt surfaces 20px
  • Tinted accent cards, dark showcase blocks 24px
  • Table cells, tags, inline chips 6px
Shadows
hairline Resting state of small chips, tabs and the announcement pill — a ring rather than a shadow.
0 0 0 1px oklab(0 0 0 / 0.05), 0 1px 1px rgba(0,0,0,0.05)
float-sm Small floating product cards (Activation, Registrations) overlapping the hero gradient.
0 0 0 1px oklab(0 0 0 / 0.05), 0 4px 24px rgba(0,0,0,0.08)
float-lg Large app-screenshot panels and the AI prompt box; the signature depth cue.
0 0 0 1px oklab(0 0 0 / 0.05), 0 8px 40px rgba(0,0,0,0.10)
hero-drop Dark product mockups sitting on light backgrounds in product/semantic sections.
0 25px 50px -12px rgba(0,0,0,0.25)
avatar-ring White halo around overlapping avatar bubbles and cursor chips.
0 0 0 4px #ffffff

Components

Live previews rendered from recipes
Steep Get started
Buttons
Inputs
Tags
New SaaS light New SaaS light
Card
Everything in one ledger

Reconcile every account overnight and close the month in an afternoon instead of a fortnight.

Get started
  • Primary CTA (black pill) — Hero and nav 'Get started'. In the 64px nav it shrinks to 10px 18px / 16px. Always sits left of a text-only secondary action with 16–24px gap.
  • Secondary action (bare text) — 'Book a demo' is unstyled text next to the pill — no border, no fill. On mobile it becomes a filled #f2f2f3 pill at full width.
  • Ghost pill / filter tab — Active nav item, 'All product updates' link-button and category filters. Inactive filters are plain #777b86 text with no background.
  • Announcement bar — Centred above the hero headline; bell icon with a red dot on the left, right arrow → on the right, 8px gaps.
  • Feature panel — Flat, borderless, no shadow. Title in Söhne 26px/450 at the top, illustration in the middle, 18px #777b86 copy at the bottom. The lead card in a row may swap to #fbe1d1 with 24px radius and 32px padding.
  • Floating product card — Cropped metric widgets that bleed off the viewport edges around the hero. Keep them partially off-canvas — the crop is the point.
  • Prompt input — 'Ask anything…' placeholder in #a3a6af, small grey icon row bottom-left, 36px circular #121212 send button with a white ↑ bottom-right.
  • Top navigation — Fixed, 64px tall, fully transparent with no border or backdrop blur — it floats over the gradient. Three zones: wordmark+glyph left, four centred links with 40px gaps, 'Book a demo' text + black pill right.

Do / Don't

  • Set every headline in Signifier 400 only — scale it up rather than bolding it, and tighten tracking to -0.015em to -0.025em above 60px.
  • Keep the nav transparent and borderless so the hero gradient runs under it.
  • Use the gradient wash sparingly: hero backdrops only, always with grain and always under black type at full contrast.
  • Crop product UI cards at the viewport edge so they read as glimpses of a live app, not as framed screenshots.
  • Build depth with the 1px 5% ring plus a wide soft shadow (0 8px 40px rgba(0,0,0,.1)) instead of visible borders.
  • Pair exactly one filled black pill with one bare-text secondary action in every CTA group.
  • Let sections breathe: 128px minimum between chapters, 48px padding inside large grey panels.
  • Don't set body copy, nav links or buttons in the serif — Söhne owns everything under 28px.
  • Don't add 1px grey outlines to cards; the system uses fills and rings, and only section dividers get a visible #ececec rule.
  • Don't introduce saturated brand colour; #fbe1d1 and #d3e3fc are the only tints, and #2f6fe5 is reserved for links and in-product UI.
  • Don't use drop shadows on flat feature panels — only on elements that float over another surface.
  • Don't crowd the hero: no more than one line of lead copy per 62 characters and never more than two headline lines.
  • Don't use sharp corners or radii under 6px; nothing in this system is square.
  • Don't colourize photography — customer imagery stays black and white.

Screens

Steep: AI analytics for faster insights and zero chaos /
API, MCP and code updates | Steep /changelog/entities-api-mcp
Explore and analyze | Steep /product
Customer stories | Steep /customers
Pricing | Steep /pricing
Mobile 390×844
Mobile navigation menu open